<html>
	<head>
		<title>The CAPS Audio Plugin Suite</title>
		<style type=text/css>
			body, table {
				font-family: Helvetica, Tahoma, Geneva, sans-serif;
			}
			
			h1, h2 {
				padding-top: 2pt;
				padding-bottom: 2pt;
				border-bottom: solid 1px black;
				sborder-top: solid 1px black;
				sbackground-color: #eeeeee;
				stext-align: center;
			}

			h3 {
				width: 70%;
				border-bottom: solid 1px #cccccc;
				margin-top: 24pt;
			}

			h4 {
				width: 70%;
				border-bottom: dotted 1px #dddddd;
			}

			a	{
				font-weight: normal;
				text-decoration: none;
			}
			
			a:hover {
				text-decoration: underline;
			}

			a:visited {
				color: #7f7f00;
			}
			
			a:link {
				color: #1d30e7;
			}

			a.quitte,a.quitte:visited {
				text-decoration: none;
			}

			a.foot {
				color: #7588ff;
			}

			td.sm {
				font-size: 90%;
			}

			td.q {
				padding-left: 20px;
				padding-right: 20px;
				padding-top: 16px;
				padding-bottom: 16px;
			}

			td.q a, td.q a:visited {
				text-decoration: none;
				color: #ffffff;
			}

			td.q a.quitte {
				font-size: 16pt;
			}

			#gray {background-color: #dddddd;}
			#c0 {background-color: #5da0d7;}
			#c1 {background-color: #efaa59;}
			#c2 {background-color: #efcb30;}
			#c3 {background-color: #84a68c;}
			#c4 {background-color: #a80d1b;}
			#c5 {background-color: #7a6fa0;} // originally night magenta

			sup {
				font-size: 30%;
			}

			div.foot {
				padding-top: 2pt;
				padding-bottom: 2pt;
				border-top: solid 1px black;
				border-bottom: solid 1px black;
				background-color: #eeeeee;
			}

			p.attrib {
				font-size: 90%;
				text-align: right;
			}

			#foot {
				font-size: 90%;
			}

			#bg {
				//padding-top: 1pt;
				//padding-bottom: 1pt;
				font-size: 120%;
			}
			
			#warn {
				color: #ff0000;
			}

			
		h3 {margin-top: 18em;} 
		h4 {font-size: 11pt; padding-top: 2em;} 
		h5 {font-size: medium; margin-bottom: .5em;} 
		p {max-width: 42em;} 
		body {margin: 18px;} 
		p#foot {border-top: solid 1px black;}
		h3 {font-size: 14pt; border-bottom: solid 1px black;}
		h4 {color: #aa0000; border-bottom: solid 1px black;}
		h4 {margin-top: 21px;margin-bottom: 0px;}
		ul {max-width: 36em; margin-bottom: 1em;} 
		ul#plugs {margin-top: 1em; font-size:80%;} 
		li.bg {font-size: large;}
		li {margin-bottom: .4em;}
		table {padding-bottom:1em; border-bottom: solid 1px black;margin-bottom: 12px;}		</style>
	</head>

	<body>
		<center>
		<div align=left>

			<h2>The CAPS Audio Plugin Suite</h2>	<table border=0 width=100% cellpadding=0 cellspacing=0>
		<tr>
			<td align=left width=20%>
				<b>Release 0.4.5</b>
			</td>
			<td rowspan=2 align=center>
				<a href=http://quitte.de/dsp/caps.html title="Yes, this page, only guaranteed fresh!">http://quitte.de/dsp/caps.html</a>
			</td>
			<td align=right width=20%>
				<b>Tim Goetze</b>
			</td>
		</tr>
		<tr>
			<td align=left>
				March 26, 2011			</td>
			<td align=right>
				<a href=mailto:tim@quitte.de?subject=CAPS>tim@quitte.de</a>
			</td>
		</tr>
		<tr>
		</tr>
	</table>
	
	<ul>
		<li class=bg><a href=#FrontMatter>Front Matter</a></li>
		<li class=bg><a href=#Download>Download</a></li>
		<li class=bg><a href=#Installation>Installation</a></li>
		<li class=bg><a href=#WhatYouShouldKnow>What You Should Know</a></li>
		<li class=bg><a href=#GimmeASetupAlready>Give me a Guitar Setup Already!</a></li>
		<li class=bg><a href=#ThePlugins>The Plugins</a>
			
		<ul id=plugs type=square>
			<li><a href=#Generic>Generic</a></li><ul type=circle>
				<li><a href=#Eq>Eq</a> &ndash; classic ten-band equalizer</li>
				<li><a href=#Eq2x2>Eq2x2</a> &ndash; stereo version of Eq</li>
				<li><a href=#Compress>Compress</a> &ndash; a compressor suitable for single instruments</li>
				<li><a href=#Pan>Pan</a> &ndash; pan and optional width</li>
				<li><a href=#Narrower>Narrower</a> &ndash; stereo image width reduction, useful for headphone listening</li>
			</ul>
			<li><a href=#Emulation>Emulation</a></li><ul type=circle>
				<li><a href=#PreampIII>PreampIII</a> &ndash; simplistic tube preamp circuit</li>
				<li><a href=#PreampIV>PreampIV</a> &ndash; simplistic tube preamp with tone controls</li>
				<li><a href=#ToneStack>ToneStack</a> &ndash; tube preamp tone controls</li>
				<li><a href=#ToneStackLT>ToneStackLT</a> &ndash; tube preamp tone controls 44.1</li>
				<li><a href=#AmpIII>AmpIII</a> &ndash; tube amp</li>
				<li><a href=#AmpIV>AmpIV</a> &ndash; tube amp with tone controls</li>
				<li><a href=#AmpV>AmpV</a> &ndash; tube amp with power supply modulation</li>
				<li><a href=#AmpVTS>AmpVTS</a> &ndash; tube amp with a ToneStack circuit</li>
				<li><a href=#CabinetI>CabinetI</a> &ndash; emulation of classical speaker cabinets</li>
				<li><a href=#CabinetII>CabinetII</a> &ndash; refined version of CabinetI</li>
				<li><a href=#Clip>Clip</a> &ndash; hard 'transistor' clipping</li>
			</ul>
			<li><a href=#Effects>Effects</a></li><ul type=circle>
				<li><a href=#ChorusI>ChorusI</a> &ndash; a versatile classic</li>
				<li><a href=#StereoChorusI>StereoChorusI</a> &ndash; when one channel is not enough</li>
				<li><a href=#ChorusII>ChorusII</a> &ndash; variant with fractal modulation</li>
				<li><a href=#StereoChorusII>StereoChorusII</a> &ndash; stereo variant with fractal modulation</li>
				<li><a href=#PhaserI>PhaserI</a> &ndash; another classic</li>
				<li><a href=#PhaserII>PhaserII</a> &ndash; variant with fractal modulation</li>
				<li><a href=#SweepVFI>SweepVFI</a> &ndash; resonant filter modulated by a fractal</li>
				<li><a href=#SweepVFII>SweepVFII</a> &ndash; resonant filter modulated by a fractal</li>
				<li><a href=#AutoWah>AutoWah</a> &ndash; resonant envelope-following filter</li>
				<li><a href=#Scape>Scape</a> &ndash; stereo delay plus resonant filters, fractal modulation</li>
			</ul>
			<li><a href=#Generators>Generators</a></li><ul type=circle>
				<li><a href=#VCOs>VCOs</a> &ndash; sawtooth / triangle / square wave generator</li>
				<li><a href=#VCOd>VCOd</a> &ndash; double VCO with detune and hard sync</li>
				<li><a href=#CEO>CEO</a> &ndash; chief executive oscillator</li>
				<li><a href=#Sin>Sin</a> &ndash; testing and tuning helper</li>
				<li><a href=#White>White</a> &ndash; white noisz</li>
				<li><a href=#Lorenz>Lorenz</a> &ndash; a fractal singing in a broken voice</li>
				<li><a href=#Roessler>Roessler</a> &ndash; a roaring fractal</li>
			</ul>
			<li><a href=#Reverb>Reverb</a></li><ul type=circle>
				<li><a href=#JVRev>JVRev</a> &ndash; a digital reverb technology classic</li>
				<li><a href=#Plate>Plate</a> &ndash; versatile refined digital reverb</li>
				<li><a href=#Plate2x2>Plate2x2</a> &ndash; 2-in, 2-out version of Plate</li>
			</ul>
			<li><a href=#Others>Others</a></li><ul type=circle>
				<li><a href=#Click>Click</a> &ndash; practice, practice, practice!</li>
				<li><a href=#Dirac>Dirac</a> &ndash; one-sample impulse generator</li>
				<li><a href=#HRTF>HRTF</a> &ndash; head-related transfer function</li>
			</ul>
		</ul></li>
		<li class=bg><a href=#Appendix>Appendix</a></li>
		<ul type=square>
			<li><a href=#DataSheet>Plugin Data Sheets</a></li>
			<li><a href=#Changelog>Changelog</a></li>
		</ul>
	</ul>
	
	&nbsp;<br>

	<a name=FrontMatter><h3>Front Matter</h3></a>
	<p>
		<b>CAPS</b>, the C* Audio Plugin Suite, is a collection of
		refined LADSPA audio plugins capable of (and mainly
		intended for) realtime operation. The suite includes DSP units emulating 
		instrument amplifiers, stomp-box classics, 
		versatile 'virtual analogue' oscillators,
		fractal oscillation, reverb, equalization and more.
	</p>
	<p>
		My favourite user's quote: 
		<i>&ldquo;... if your amps beat your plugins, they
		are *very good* amps.. ;-)&rdquo;</i> &ndash; Thanks, Pete!
	</p>
	<p>
		Most of the suite is of my own invention, 
		while some plugins are rewrites of 
		existing designs, included for
		excellence or interest. 
		Inspiring code was authored by
		(in no particular order): 
		Andrew Simper, Perry Cook, Gary Scavone, 
		Steve Harris, Richard Dobson, Bram de Jong, 
		Robert Bristow-Johnson and others. 
	</p>
	<p>
		The <a href=#ToneStack>ToneStack</a> plugins and the 
		tone controls of the <a href=#AmpVTS>AmpVTS</a> unit
		have been designed and implemented by 
		<a href=http://ccrma.stanford.edu/~dtyeh/>David Yeh</a> at 
		<a href=http://ccrma.stanford.edu/>CCRMA</a>. 
	</p>
	<p>
		Invaluable suggestions, bug hunting and fixing and 
		numerous patient reminders 
		of the sorry state of affairs
		have been graciously
		provided by (among others and in no particular order)
		Sampo Savolainen, Damon Chaplin, Paul Winkler and Niclas Wretstr&ouml;m.
	</p>
	<p>
		All of CAPS is <a href=COPYING>free software</a> and distributed
		in source code. 
	</p>
	&nbsp;<br>

	<h5>* What's with the C?</h5>
	<p>
		So what does the <i>C</i> in the name stand for? Honestly, I don't know.
	</p>
	<p>
		<i>Complete?</i> Not yet. <br>
		<i>C</i> as in the programming language? The source is C++.<br>
		<i>Crap?</i> Heaven forbid!<br>
		<i>Cute?</i> Why not ...<br>
		<i>Common?</i> Not bad either. <br>
		<i>C,</i> the latin numeral for one-hundred? Some more to go, but I
		like the idea.
	</p>
	<p>
		I've got it! <i>C</i> as in <i>The <u>C</u>aps Audio Plugin Suite!</i> 
		A classic.
	</p>

	&nbsp;<br>

	<a name=Download><h3>Download</h3></a>
	<p>
		CAPS is distributed under the 
		<a href=COPYING>GNU General Public License</a>. Other licensing terms
		can be arranged if you wish, please feel free to contact me.
	</p>

	<h5>No Guarantee</h5>
	<p>
		While I have bred all the plugins in the suite with the greatest care, 
		there is no guarantee
		that they will all retain perfect manners under all possible 
		circumstances. Take, for example, the <a href=#Lorenz>Lorenz</a>
		plugin, which models
		a fractal system. How am I to guarantee its 
		output will never go out of range, if people far more knowledgeable
		about this fractal than me assert its unpredictable behaviour?
	</p>

	<p style="border:dotted 1px #777777;padding:3pt;">
		This collection is distributed in the hope that it will be useful,
		but WITHOUT ANY WARRANTY; without even the implied warranty of
		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
	</p>

	<p>
		Download the latest release 
		<a href=caps_0.4.5.tar.gz>here, it is caps_0.4.5.tar.gz (772 kB)</a>.
	</p>

	&nbsp;<br>

	<a name=Installation><h3>Installation</h3></a>

	<p>
		Provided you run Linux, 
		installation is simply:
	</p>

	<pre align=left>
$ tar xvfz caps_0.4.5.tar.gz&nbsp;
$ cd caps-0.4.5&nbsp;
$ ./configure.py
$ make
$ su
# make install</pre>
	
	<p>
		The <tt>configure.py</tt> step is optional on Linux but recommended
		for optimum performance.
	</p>
	<p>
		You should now be able use the plugins from the collection
		in any LADSPA-aware host program, 
		like the wonderful <a href=http://pure-data.org>pd</a> with
		the <code>plugin~</code>
		<a href=http://pure-data.sourceforge.net/>external</a>,
		the inimitable <a href=http://jack-rack.sourceforge.net/>jack-rack</a>,
		the impressive <a href=http://ardour.org>ardour</a>,
		the versatile <a href=http://eca.cx>ecasound</a>,
		the classic <a href=http://www-ccrma.stanford.edu/software/snd/>snd</a>,
		and numerous other applications large and small.
	</p>
	
	<p>
		You don't run Linux? Why not
		<a href=http://www.debian.org>downgrade now</a>?
	</p>
	
	<h5>OSX</h5>
	<p>
		<tt>configure.py</tt> should detect an OSX build and prepare the
		relevant flags for Apple's different-thinking <tt>ld</tt> 
		implementation.
		Mind you, this is untested by me and 
		not guaranteed to actually work.  If it does, please
		tell me.  Thanks!
	</p>
	
	<h5>Troubleshooting</h5>
	<p>
		With no external dependencies, compiling CAPS 
		should rarely fail on a Linux box. If it
		does on your machine, please send the output of the <tt>make</tt> 
		command so we can try and fix the problem.
	</p>

	<h5>Bugs</h5>
	<p>
		If any of the plugins in the suite do not work with your host program
		of choice, or don't work as advertised, please 
		<a href=mailto:tim@quitte.de?subject=caps-bug>send a bug report</a>.
	</p>

	&nbsp;<br>

	<a name=WhatYouShouldKnow><h3>What You Should Know</h3></a>

	<h5>Parameter Smoothing</h5>
	<p>
		To prevent zipper noise, many plugin control inputs are subject 
		to internal parameter smoothing where the effort seems justified.  
		This is achieved by sweeping parameters internal to the plugin.  
		The duration of this sweep will vary with the audio system setup.
		For realtime use and most known LADSPA hosts it is equal to the audio
		block size (in <tt>jackd</tt> terms: the "frames per period").
	</p>

	<h5>Sample Rate</h5>
	<p>
		The CAPS plugins are designed to be used at
		sample rates of 44.1 kHz or higher.  Operation at lower sample rates 
		is generally possible but untested. 
		Especially the resonant filters in the 
		<a href=#SweepVFI>SweepVFI</a>, 
		<a href=#SweepVFII>SweepVFII</a>,
		<a href=#AutoWah>AutoWah</a> and 
		<a href=#Scape>Scape</a> plugins can self-oscillate out of 
		bounds at low sample rates and high filter cutoff frequency settings.
		It is a wise idea to do some silent test runs testing
		the entire parameter range to see if
		the plugin works as expected before relying on its operation at
		sample rates below 44.1 kHz.
	</p>
	<p>
		In the plugin listing, for every unit you'll see a note like 
		<em>All sample rates</em>. This means that the plugin should sound the
		same no matter what sample rate it is run at. If it doesn't, holler at
		me. 
		A note like <em>44.1 kHz only</em> means you
		can still run the plugin at other sample rates without having to fear
		for your life, but the sonic experience may differ from what is 
		advertised.
	</p>
	<p>
		Usage at sample rates of 176 kHz or higher may cause problems with some
		plugins.  We recommend not exceeding 100 kHz for all applications.
	</p>

	<h5>Realtime Use</h5>
	<p>
		All of the plugins in the suite are hard-realtime capable. In some
		cases, parameter smoothing will take a marginal number of
		extra CPU cycles when a control value is changed, as well as when the
		plugin is starting or resuming operation.
	</p>

	<h5>In-Place and Mixing/Replacing Operation</h5>
	<p>
		All of the plugins in the suite support any combination of in-place, 
		mixing and replacing operation.
	</p>

	<h5>Denormals</h5>
	<p>
		Denormal numbers 
		(<a href=http://en.wikipedia.org/wiki/Denormal>wikipedia</a>)
		are the bane of DSP on common computer systems because they seriously
		slow down computing speed.  In CAPS, various approaches are employed to
		prevent this problem from arising.  Most of the plugins add an inaudible
		signal (-266 dB) at the Nyquist 
		(<a href=http://en.wikipedia.org/wiki/Nyquist_frequency>wikipedia</a>) 
		or at a fixed lower frequency which keeps calculations out of the critical
		zone around zero.  In addition, if you run <tt>configure.py</tt> prior
		to building CAPS, SSE extensions will be employed to aid in this task if
		they are available on the build system.
	</p>

	<h5>I'd love to hear from you. Really!</h5>
	<p>
		You like something about CAPS? Don't like it? 
		Either way, tell me &ndash; otherwise
		I'll never be able to improve it!
	</p>
	
	<h5>Known Bugs and Limitations</h5>
	<ul>
		<li>
			CPU usage figures, if given, may be inaccurate or even off by an
			order of magnitude.
		</li>
		<li>
			8x oversampling consumes a lot of CPU power.
		</li>
		<li>
			Since version 0.4.0, CAPS cannot be compiled with gcc 2.95 any more.
		</li>
		<li>
			Processing blocks larger than 2<sup>31</sup> - 1 aren't supported.
		</li>
		<li>
			Old <tt>jack-rack</tt> host versions have some crazy ideas about the 
			default control parameters of the CAPS plugins &ndash; they're all
			over the place.
		</li>
		<li>
			Sample rates in excess of 100 kHz may cause some plugins to develop
			problems.
		</li>
		<li>
			The <a href=#White>White</a> plugin 
			actually produces a slightly purplish signal despite the rather
			boastful claims of signal purity made elsewhere.
		</li>
	</ul>

	&nbsp;<br>
	<a name=GimmeASetupAlready><h3>Give me a Guitar Setup Already!</h3></a>

	<p>
		Start your guitar signal chain with an 
		<a href=#AmpVTS>AmpVTS</a>, followed by a 
		<a href=#CabinetII>CabinetII</a> and finish with a
		<a href=#Plate>Plate</a> reverb.  
		Season to taste, done.
	</p><p>
		Additional effects like 
		<a href=#ChorusII>chorus</a>, 
		<a href=#PhaserII>phaser</a> or
		<a href=#AutoWah>auto wah</a> would drop in right before or right after 
		the Cabinet (I usually prefer the latter).
	</p>

	&nbsp;<br>

	<a name=ThePlugins><h3>The Plugins</h3></a>

	<a name=Generic><h3>Generic</h3></a>

	<a name=Eq><h4>Eq</h4></a>
	<p>
		A ten-band, octave-spread equalizer. Based on a traditional analogue 
		design and about as faithful as digital IIR filtering allows. 
		Individual band filters are <nobr>6 dB / octave</nobr>.
	</p>
	<p>
		<em>All sample rates (bands beyond Nyquist are disabled).</em>
	</p>
	<ul>
		<li><b>31 Hz, 63 Hz, 125 Hz, 250 Hz, 500 Hz, 1 kHz, 2 kHz, 4 kHz, 8 kHz, 16 kHz</b></li>
			control the gain in dB for the respective band.</p></li>
	</ul>

	<a name=Eq2x2><h4>Eq2x2</h4></a>
	<p>
		By popular demand, a stereo-in, stereo-out version of the 
		<a href=#Eq>Eq unit</a>. 
		Same controls as Eq.
	</p>

	<a name=Compress><h4>Compress</h4></a>

	<p>
		A mono compressor, based on the SC1 design by 
		<a href=http://plugin.org.uk>Steve Harris</a> (in other words, a ripoff)
		with minor tweaks. Be
		careful with the gain and ratio controls, the output signal can easily
		exceed 0 dB.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>gain (dB)</b><p>
			controls the maximum gain applied by the unit.</p></li>
		<li><b>ratio (1:n)</b><p>
			controls the overall gain.</p></li>
		<li><b>attack (s)</b><p>
			controls the speed at which the circuit acts on a rising input signal
			envelope.</p></li>
		<li><b>release (s)</b><p>
			controls the speed at which the circuit acts on a decaying input signal
			envelope.</p></li>
		<li><b>threshold (dB)</b><p>
			sets the envelope level that the compressor starts acting at.</p></li>
		<li><b>knee radius (dB)</b><p>
			controls the softness of the transition between unaltered and 
			compressed signal.</p></li>
	</ul>

	<a name=Pan><h4>Pan</h4></a>
	<p>
		Places a monaural source in the stereo field. For some extra spicing,
		the unit can also add a low-pass filtered echo at the far
		ends of the stereo field to make the signal sound 'wider' (recreating 
		the old doubling effect with a twist). You can 
		(and should!) control the loudness and timing of the echo; what's best
		depends largely on the source signal.
	</p>
	<p>
		<em>No parameter smoothing.</em>
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>pan</b><p>
			position</p></li>
		<li><b>width</b><p>
			echo volume</p></li>
		<li><b>t</b><p>
			delay in milliseconds<p></li>
		<li><b>mono</b><p>
			if non-zero, causes the unit to mix the stereo output back down to mono
			and output that (on both outbound ports). 
			The purpose is to check for mono
			compatibility of the output.<p></li>
	</ul>

	<a name=Narrower><h4>Narrower</h4></a>
	<p>
		Reduces the width of a stereophonic signal.  
		Very useful for headphone listeners.
	</p>
	<p>
		<em>No parameter smoothing.</em>
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>strength</b><p>
			amount of width reduction</p></li>
	</ul>


	<a name=Emulation><h3>Emulation</h3></a>

	<a name=PreampIII><h4>PreampIII</h4></a>
	<p>
		One further step in the evolution of my 
		<a href=http://quitte.de/dsp/preamp.html>tube preamplifier emulation</a>. This one
		uses conventional polyphase FIR filters for 8x oversampling,
		which helps make the unit sound a good deal cleaner than the 
		IIR-based predecessor. 
	</p>
	<p>
		The first steps towards this unit were based on a <tt>spice</tt> model
		of the preamplifier circuit in a Fender 5F4 design ('Super' tube amp,
		a close relative of the famed 'Bassman', which is the ancestor of the
		Marshall lineage). Further evolution was 
		based on measurements of my 'Super 60' (mid-1980s) amp and, of course, 
		personal preference. 
		The plugin offers a softer kind of preamp clipping
		than the actual circuit, though it can be made to clip as harsh as the 
		original thing if given enough gain.
	</p>
	<p>
		A word of caution: at high 'temperature' settings, an input
		signal peaking above 0 dB can drive
		the first 'tube' stage into hard clipping. Since this stage of the
		circuit is run at the nominal sample rate, aliasing and thus sound
		quality degradation will occur.
		Do not overdrive the input, instead use the 'gain' knob for 
		harsh distortion, it offers more than enough of it. This applies to all
		Preamp and Amp units.
	</p>
	<p><em>All sample rates.</em></p>
	<ul>
		<li><b>gain</b><p>
				controls the level of saturation. For a balanced (0 dB max.) 
				input signal,
				hard clipping will not occur below a gain value of 1.
			</p></li>
		<li><b>temperature</b><p>
				emulates the level of the input signal, thus how much the first 
				preamplifier tube will colour the signal. 
				The effect is very subtle.</p></li>
	</ul>

	<a name=PreampIV><h4>PreampIV</h4></a>
	<p>
		A variation on <a href=#PreampIII>PreampIII</a> with added tone controls
		before the clipping stage. The tone controls have the same
		flaws as their analog counterparts (phase cancellation at high band
		gains). But exactly because they are not linear-phase, they are quite
		useful in altering the distortion characteristics of the circuit.
	</p>
	<p><em>All sample rates.</em></p>
	<p>
		Same parameters as <a href=#PreampIII>PreampIII</a>, plus the following 
		(all in dB units):
	</p>
	<ul>
		<li><b>bass</b><p>
				80 Hz band</p></li>
		<li><b>mid</b><p>
				300 Hz band</p></li>
		<li><b>treble</b><p>
				1200 Hz band</p></li>
		<li><b>hi</b><p>
				4800 Hz band</p></li>
	</ul>

	<a name=ToneStack><h4>ToneStack</h4></a>
	<p>
		A close model of the tone stack of a traditional instrument
		amplifier (of Fender origin), designed and implemented by David Yeh,
		discussed in [<a name=yeh06-1 href=#yeh06>2</a>]
		(see <a href=http://ccrma.stanford.edu/~dtyeh/tonestack/>his project page at CCRMA</a>).
	</p><p>
		This is the 'procedural' implementation which uses a direct form II filter,
		adapts to the actual sample rate and offers the choice of model
		from a selection of several classic tone stacks. 
		(The AC-30 is a crude approximation for which David isn't to blame. I
		simply dropped in the parameters although the circuit doesn't 
		match the one David modeled.)
	</p>
	<p><em>All sample rates.</em></p>
	<ul>
		<li><b>model</b><p>
			0 - '59 Bassman<br>
			1 - '69 Twin Reverb<br>
			2 - '64 Princeton<br>
			3 - '59/'81 JCM 800<br>
			4 - '78 Club &amp; Country<br>
			5 - '59/'86 AC-30 of sorts
		</li>
		<li><b>bass</b></li>
		<li><b>mid</b></li>
		<li><b>treble</b></li>
	</ul>

	<a name=ToneStackLT><h4>ToneStackLT</h4></a>
	<p>
		This version of David Yeh's <a href=#ToneStack>ToneStack</a> replaces
		the procedural approach and direct form II filter 
		with a lattice filter and operation on
		precalculated simulation data.  It's a fixed implementation of the
		'59 Bassman model.
	</p>
	<p><em>44.1 kHz</em></p>
	<ul>
		<li><b>bass</b></li>
		<li><b>mid</b></li>
		<li><b>treble</b></li>
	</ul>


	<a name=AmpIII><h4>AmpIII</h4></a>
	<p>
		A <a href=#PreampIII>PreampIII</a> circuit plus a tube power amplifier 
		emulation giving that smooth drive. 
	</p>
	<p>
		We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
	</p>
	<p><em>All sample rates.</em></p>
	<p>
		Same controls as <a href=#PreampIII>PreampIII</a>, plus:
	</p>
	<ul>
		<li><b>drive</b><p>
				controls the 'master volume' of the circuit, i.e. how much
				coloring and compression the emulated power amplifier produces.</p></li>
	</ul>

	<a name=AmpIV><h4>AmpIV</h4></a>
	<p>
		A <a href=#PreampIV>PreampIV</a> with the same output amp stage
		emulation that <a href=#AmpIII>AmpIII</a> employs. Controls are the
		same as on <a href=#PreampIV>PreampIV</a>, plus the 'drive' inherited
		from <a href=#AmpIII>AmpIII</a>.
	</p>
	<p>
		We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
	</p>
	<p><em>All sample rates.</em></p>

	<a name=AmpV><h4>AmpV</h4></a>
	<p>
		This circuit is loosely based on the <a href=#AmpIII>AmpIII</a> design. 
		The preamplifier stage has been augmented and tuned 
		to provide a warmer frequency response as well as slightly different
		clipping characteristics. But more significantly, AmpV emulates the 
		shortcomings of an unregulated power supply and their effect on the 
		total gain of the circuit, the operating point of the tubes and the
		clipping response.
	</p><p>
		AmpV's forte is a mellow sound at the transition from clean to rough, 
		at lowish 'gain' settings and moderate 'watts'. 
	</p>
	<p>
		We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
	</p>
	<p><em>All sample rates.</em></p>
	<ul>
		<li><b>gain</b><p>
				controls the amount of edge added in the preamplifier stage. The
				parameter mapping has been optimized for fine control in the clean to 
				medium-rough range.
				</p></li>
		<li><b>bass</b><p>
				controls the attenuation or amplification of low frequencies
				before the preamp tube (the value is expressed in dB). 
				Technically, a low-shelving equalizer filter.
				</p></li>
		<li><b>tone</b><p>
				controls post-preamplifier circuit filtering. At the zero setting,
				the effect is turned off. At its maximum, there is some resonance
				quite high in the spectrum.
				</p></li>
		<li><b>drive</b><p>
				controls power-amplification stage saturation, which gives a fair bit
				of warmth and some compression. 
				</p></li>
		<li><b>watts</b><p>
				controls how capable the emulated power supply is. At its minimum
				setting, the effects of supply voltage modulation are
				the most pronounced.
				At the maximum setting, they are effectively removed (which is 
				recommended for high-'gain' setups).
				</p></li>
	</ul>

	<a name=AmpVTS><h4>AmpVTS</h4></a>
	<p>
		An <a href=#AmpV>AmpV</a> with the tone controls replaced with
		the fine <a href=#ToneStack>ToneStack</a> by David Yeh. And a ton of
		other modifications (most notably the availability of an extra 28 dB 
		of gain).
	</p>
	<p><em>All sample rates.</em></p>


	<a name=CabinetI><h4>CabinetI</h4></a>

	<p>
		A collection of filters emulating the frequency response
		of various guitar combo amps or speaker cabinets, using the
		method outlined 
		<a href=http://quitte.de/dsp/unmatched.html>here</a>.
	</p>
	<p>
		You'll find a more exact, but also a lot more cycle-hungry and
		latency-inflicting rendering of 
		these responses in 
		<a href=http://plugin.org.uk>Steve Harris' collection</a>, from which
		they were borrowed.
	</p>
	<p>
		We recommend you use the successor unit <a href=#CabinetII>CabinetII</a>
		instead.
	</p>
	<p>
		<em>44.1 kHz (48 kHz gives a slightly different, but still usable frequency response.)</em>
	</p>
	<ul>
		<li><b>model</b><p>
			0 - identity filter (what goes in, goes out).<br>
			1 - 'unmatched', as I still like to call it. A Matchless Chieftain.<br>
			2 - the same, but the recording was taken with the microphone on-axis.<br>
			3 - Superchamp (a Fender, isn't it?)<br>
			4 - Fender Vibrolux 68<br>
			5 - Marshall 'Plexi'
		</li>
		<li><b>gain (dB)</b><p>
			volume control.</p></li>
	</ul>

	<a name=CabinetII><h4>CabinetII</h4></a>

	<p>
		A refined version of <a href=#CabinetI>CabinetI</a>. 
		This version offers a much more
		faithful rendering of the original speaker cabinet frequency responses
		due to a modified filter approximation, double the filter order and
		(limited) adaptability to sample rate.
	</p><p>
		Unlike conventional impulse response emulators who rely on brute-force
		convolution, FFT-based algorithms or the patent-encumbered zero-latency
		variant of the latter, the Cabinet units employ IIR filters for
		truly resonant behaviour. As a result, their sound is more lively.
	</p><p>
		Same controls as <a href=#CabinetI>CabinetI</a>.
	</p>
	<p>
		<em>44.1, 48, 88.2 and 96 kHz (nearest match chosen at runtime)</em>
		<br>
	</p>

	<a name=Clip><h4>Clip</h4></a>
	<p>
		A spin-off of the <a href=#PreampIII>PreampIII</a> effort.
		8x oversampled hard clipping (sometimes called 'diode' or 
		'transistor' clipping). 
		The clip threshold is fixed at -1 dB (overshoot 
		from the up- and downsampling filters could exceed 0 dB were the threshold
		higher). 
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>gain (dB)</b><p>
			controls pre-clipping amplification.</p></li>
	</ul>

	<a name=Effects><h3>Effects</h3></a>

	<a name=ChorusI><h4>ChorusI</h4></a>

	<p>
		Mono version, with a feedback circuit. The parameter range suits more
		subtle effects as well as all-out flanging. Modifying the 't' parameter
		when 'feedback' is non-zero will cause zipper noise.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>t (ms)</b><p>
			delay time.</p></li>
		<li><b>width (ms)</b><p>
			controls the amount of pitch change.</p></li>
		<li><b>rate (Hz)</b><p>
			the speed of the pitch modulation.</p></li>
		<li><b>blend</b><p>
			the amount of dry and fed-back signal in the output.</p></li>
		<li><b>feedforward</b><p>
			amount of modulated signal in the output.</p></li>
		<li><b>feedback</b><p>
			amount of signal with fixed delay in the modulation input.</p></li>
	</ul>
	
	<a name=StereoChorusI><h4>StereoChorusI</h4></a>

	<p>
		Two <a href=#ChorusI>ChorusI</a> circuits in parallel, 
		sharing the same input (and delay 
		line). Same parameters as the mono version, plus one.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>phase</b></li><p>
			controls the relation of the two LFOs. 0 means in-phase, 0.5 is
			quadrature, and 1 is anti-phase.</p>
		</li>
	</ul>

	<a name=ChorusII><h4>ChorusII</h4></a>

	<p>
		A variation on the <a href=#ChorusI>ChorusI</a> unit; this one employs
		a Roessler fractal to steer the signal modulation, resulting in less
		predictable and thus more interesting sound.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>t (ms)</b><p>
			delay time.</p></li>
		<li><b>width (ms)</b><p>
			controls the amount of pitch change.</p></li>
		<li><b>rate</b><p>
			the speed of the pitch modulation.</p></li>
		<li><b>blend</b><p>
			the amount of dry and fed-back signal in the output.</p></li>
		<li><b>feedforward</b><p>
			amount of modulated signal in the output.</p></li>
		<li><b>feedback</b><p>
			amount of signal with fixed delay in the modulation input.</p></li>
	</ul>
	
	<a name=StereoChorusII><h4>StereoChorusII</h4></a>

	<p>
		Two <a href=#ChorusII>ChorusII</a> circuits in parallel, 
		sharing the same input (and delay
		line). Same parameters as the mono version.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>

	<a name=PhaserI><h4>PhaserI</h4></a>

	<p>
		Nothing out of the ordinary, just a phaser like I like to have them.
		A phaser unit works by sweeping notches in the frequency response; this one
		has six comb filters, for six notches. 
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>rate (Hz)</b><p>
			controls the speed of the modulation.</p></li>
		<li><b>depth</b><p>
			the strength of the effect.</p></li>
		<li><b>spread</b><p>
			the distance of the notched frequency bands.</p></li>
		<li><b>feedback</b><p>
			controls the amount of resonance.</p></li>
	</ul>
			
	<a name=PhaserII><h4>PhaserII</h4></a>

	<p>
		A variation of the <a href=#PhaserI>PhaserI</a> circuit which relies
		on a Lorenz fractal for the modulation source, improving hugely on
		output sound variation.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>rate</b><p>
			controls the speed of the modulation.</p></li>
		<li><b>depth</b><p>
			the strength of the effect.</p></li>
		<li><b>spread</b><p>
			the distance of the notched frequency bands.</p></li>
		<li><b>feedback</b><p>
			controls the amount of resonance.</p></li>
	</ul>
			
	<a name=SweepVFI><h4>SweepVFI</h4></a>

	<p>
		A resonant filter whose cutoff frequency is swept by a 
		<a href=#Lorenz>Lorenz</a> fractal. With the default parameters 
		(moderate Q, cutoff around 800 Hz and band pass mode)
		it makes a nice Wah effect if you lower the 'h' parameter by a fair amount.
	</p>
	<p>
		Another idea is to set it to very high Q and frequency in low pass mode
		and filter some noise, for synthetic bird chirping (high h value)
		or theremin-like sounds (low h, lower frequency).
	</p>
	<p>
		Please note that the most useful settings for the 'h' parameter
		are <i>very</i> low, around 0.01 - 0.09. Unfortunately there's no way
		to provide a default setting as low as this without compromising
		the range of the control.
	</p>
	<p>
		And be careful, high Q resonance can peak at up to +18 dB.
	</p>
	<p>
		<em>All sample rates (modulation rate and character are sample rate dependent).</em>
	</p>
	<ul>
		<li><b>f</b><p>
			cutoff frequency (band center for band pass filtering).</p></li>
		<li><b>Q</b><p>
			filter resonance.</p></li>
		<li><b>mode</b><p>
			0 - low pass<br>
			1 - band pass</p></li>
		<li><b>depth:x</b></li>
		<li><b>depth:y</b></li>
		<li><b>depth:z</b><p>
			control how the modulation is mixed from the state of the attractor.</p></li>
		<li><b>h</b><p>
			step size of the fractal.</p></li>
	</ul>
		
	<a name=SweepVFII><h4>SweepVFII</h4></a>

	<p>
		A variation on <a href=#SweepVFI>SweepVFI</a>, 
		with the filter Q (bandwidth/resonance) 
		modulated by a second	<a href=#Lorenz>Lorenz</a> fractal. 
	</p>
	<p>
		Please note that the most useful settings for the 'h' parameter
		are <i>very</i> low, around 0.01 - 0.09. Unfortunately there's no way
		to provide a default setting as low as this without compromising
		the range of the control.
	</p>
	<p>
		And be careful, high Q resonance can peak at up to +18 dB.
	</p>
	<p>
		<em>All sample rates (modulation rate and character are sample rate dependent).</em>
	</p>
	<ul>
		<li><b>f</b><p>
			cutoff frequency (band center for band pass filtering).</p></li>
		<li><b>Q</b><p>
			filter resonance.</p></li>
		<li><b>mode</b><p>
			0 - low pass<br>
			1 - band pass</p></li>
		<li><b>f:depth:x</b></li>
		<li><b>f:depth:y</b></li>
		<li><b>f:depth:z</b><p>
			control how the filter cutoff modulation is mixed 
			from the state of the attractor.</p></li>
		<li><b>f:h</b><p>
			step size of the fractal modulating the cutoff.</p></li>
		<li><b>Q:depth:x</b></li>
		<li><b>Q:depth:y</b></li>
		<li><b>Q:depth:z</b><p>
			control how the filter Q modulation is mixed 
			from the state of the attractor.</p></li>
		<li><b>Q:h</b><p>
			step size of the fractal modulating filter Q.</p></li>
	</ul>

	<a name=AutoWah><h4>AutoWah</h4></a>
	<p>
		The same resonant filter as used by the <a href=#SweepVFI>SweepVFI</a>
		and <a href=#SweepVFII>SweepVFII</a> units, the difference being that
		the filter is hard-wired for bandpass operation and 
		the band centre frequency is modulated by an envelope-following circuit.
		In short, an effect commonly known and esteemed as an automatic wah,
		or AutoWah.  Probably most useful with instruments allowing fine control over
		dynamics at all times.
	</p>
	<p>
		Be careful with the Q parameter, high resonance can peak at up to +18 dB.
	</p>
	<p>
		<em>All sample rates (modulation rate and character may be sample rate dependent).</em>
	</p>
	<ul>
		<li><b>f</b><p>
			filter band centre frequency.</p></li>
		<li><b>Q</b><p>
			resonance.</p></li>
		<li><b>depth</b><p>
			strength of the modulation.</p></li>
	</ul>


	<a name=Scape><h4>Scape</h4></a>

	<p>
		This plugin will generate quite expansive soundscapes from even the
		most modest input signals.
	</p>
	<p>
		Technically, 'Scape' is a 
		stereo delay, with the panning of the echo modulated by a pair of
		fractals.
		The delay times are adjustable through
		a 'bpm' knob, augmented by a beat division parameter. 
		The input as well as the delayed signals are processed by a
		collection of resonant filters, with frequency and cutoff modulated
		in sync to the current tempo.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>bpm</b><p>
			beats per minute.</p></li>
		<li><b>divider</b><p>
			controls whether the groove is ternary or binary.</p></li>
		<li><b>feedback</b><p>
			controls the length of the delay tail.</p></li>
		<li><b>dry</b><p>
			the amount of dry signal mixed to the outputs.</p></li>
		<li><b>blend</b><p>
			the amount of wet signal mixed to the outputs.</p></li>
	</ul>



	<a name=Generators><h3>Generators</h3></a>

	<a name=VCOs><h4>VCOs</h4></a>

	<p>
		An oscillator capable of producing the standard 
		triangle, sawtooth and square waveforms of analog fame, 
		and almost any conceivable blend
		thereof. 8x oversampled, thus needs a lot of cycles. Sorry about that,
		but you don't get the flexibility and fat sound for free.
	</p>
	<p>
		About the morphing controls:
	</p>
	<ul type=circle>
		<li>For a <b>triangle wave,</b> set both <i>tri .. saw</i> and
			<i>~ .. square</i> to 0 (this is the default setting).</li>
		<li>To morph into a <b>sawtooth,</b> pull up <i>tri .. saw</i>.</li>
		<li>For a <b>square wave</b> instead, pull up <i>~ .. square</i>. When
			the value reaches 1, <i>tri .. saw</i> fully controls the pulse
			width.</li>
	</ul>
	<p>
		For a more intuitive approach, thinking of both controls
		in terms of 'dull .. sharp' for a start
		can't hurt.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>f</b><p>
			the frequency.</p></li>
		<li><b>tri .. saw</b><p>
			controls the morph between triangle and sawtooth, and the pulse
			width of square oscillation.</p></li>
		<li><b>~ .. square</b><p>
			controls the morph between triangle/sawtooth and square wave.</p></li>
		<li><b>volume</b></li>
	</ul>

	<a name=VCOd><h4>VCOd</h4></a>

	<p>
		A combination of two <a href=#VCOs>VCOs</a> units. 
		The second oscillator
		offers a separate tuning knob. It can also be made 
		to 'hard sync'
		to the first unit, which means that when the first has completed
		a wave cycle, the second is forced to restart its wave cycle 
		together with the first. 
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>f</b><p>
			the frequency.</p></li>
		<li><b>1: tri .. saw</b></li>
		<li><b>1: ~ .. square</b><p>
			waveform morph controls for the first oscillator.</p></li>
		<li><b>2: tri .. saw</b></li>
		<li><b>2: ~ .. square</b><p>
			waveform morph controls for the second oscillator.</p></li>
		<li><b>2: tune</b><p>
			controls the interval between the two oscillator frequencies, in
			units of (fractional) semitones.</p></li>
		<li><b>sync</b><p>
			if non-zero, puts the second oscillator into 'hard sync' mode, and
			determines the forced-restart offset into its wave cycle.</p></li>
		<li><b>blend</b><p>
			controls how the waveforms from the two oscillators are mixed.
			A value of 0 means only oscillator one is heard, a value of either
			1 or -1 tilts the balance fully towards oscillator two. The sign
			of the <b>blend</b> value determines if the signals are added or
			subtracted.</p></li>
		<li><b>volume</b></li>
	</ul>

	<a name=CEO><h4>CEO</h4></a>

	<p>
		The Chief Executive Oscillator forever repeats the word 'money'.
	</p>
	<p>
		<em>44.1 kHz.</em>
	</p>
	<ul>
		<li><b>mpm</b><p>
			moneys per minute.</p></li>
		<li><b>volume</b></li>
		<li><b>damping</b><p>
			moderates the CEO.</p></li>
	</ul>

	<a name=Sin><h4>Sin</h4></a>

	<p>
		The old friend, indispensable for testing and tuning.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>f</b><p>
			the frequency.</p></li>
		<li><b>volume</b></li>
	</ul>

	<a name=White><h4>White</h4></a>

	<p>
		White noise (actually slightly pinkish, sorry).
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>volume</b></li>
	</ul>

	<a name=Lorenz><h4>Lorenz</h4></a>

	<p>
		A Lorenz attractor is a fractal system. It produces a very
		own character of noisz that will hardly repeat in the course of your
		lifetime.
	</p>
	<p>
		<em>Sound varies with sample rate.</em>
	</p>
	<ul>
		<li><b>h</b></p>
			controls the step size of the state progression, and, indirectly, the
			perceived frequency of the sound.</p></li>
		<li><b>x</b></li>
		<li><b>y</b></li>
		<li><b>z</b><p>
			control how the signal is mixed from the state of the attractor.</p></li>
		<li><b>volume</b></li>
	</ul>
	<p>
		For more information on the
		Lorenz and Roessler attractors, visit
		<a href=http://astronomy.swin.edu.au/~pbourke/fractals/lorenz/>Paul Bourke's resourceful site</a>.
	</p>

	<a name=Roessler><h4>Roessler</h4></a>

	<p>
		Another fractal system. This one lends itself
		particularly well to sweeping the 'h' parameter.
	</p>
	<p>
		<em>Sound varies with sample rate.</em>
	</p>
	<ul>
		<li><b>h</b></p>
			controls the step size of the state progression.</p></li>
		<li><b>x</b></li>
		<li><b>y</b></li>
		<li><b>z</b><p>
			control how the signal is mixed from the state of the attractor.</p></li>
		<li><b>volume</b></li>
	</ul>
	<p>
		For more information on the
		Lorenz and Roessler attractors, visit
		<a href=http://astronomy.swin.edu.au/~pbourke/fractals/lorenz/>Paul Bourke's resourceful site</a>.
	</p>

	<a name=Reverb><h3>Reverb</h3></a>

	<a name=JVRev><h4>JVRev</h4></a>

	<p>
		A traditional Chowning/Moorer/Schroeder reverb. It sounds quite good
		for a reverberation unit with such a comparatively small footprint
		(I still remember the times when your average personal computer wasn't 
		even capable of computing this in realtime). A quite
		straight-forward rewrite of a unit found in 
		<a href=http://ccrma.stanford.edu/>CCRMA</a>'s 
		<a href=http://ccrma.stanford.edu/software/stk/>STK (Synthesis Toolkit)</a>,
		with minor tweaks.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>t60 (s)</b></p>
			controls the time until the reverb tail is supposed to fade 
			to -60 dB.</p></li>
		<li><b>blend</b></p>
			controls dry/wet mixing ratio.</p></li>
	</ul>

	<a name=Plate><h4>Plate</h4></a>

	<p>
		A reverberation unit based on the design discussed
		in [<a name=dat97-1-1 href=#dat97-1>1</a>]. 
		Unlike the reference, the unit employs cubic instead of
		allpass interpolation to modulate the reverb 'tank' delay lines.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>bandwidth</b><p>
			controls damping of the input signal before it enters the
			delay circuits.</p></li>
		<li><b>tail</b><p>
			controls the length of the reverb tail.</p></li>
		<li><b>damping</b><p>
			controls attenuation of high frequency components within the reverb 'tank'
			(decay stage).</p></li>
		<li><b>blend</b><p>
			dry/wet mixing ratio (default should be 1/8, not 1/4).</p></li>
	</ul>

	<a name=Plate2x2><h4>Plate2x2</h4></a>

	<p>
		By popular demand, a stereo-in, stereo-out version of the 
		<a href=#Plate>Plate</a> reverb unit. Same controls, same sound.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>

	<a name=Others><h3>Others</h3></a>

	<a name=Click><h4>Click</h4></a>

	<p>
		A sample-accurate metronome. Timing is exact at any sample rate, but
		the pitch of the click (being a recorded sample) will vary. (The click
		also lends well for testing reverb plugins.)
	</p>
	<p>
		<em>44.1 kHz.</em>
	</p>
	<ul>
		<li><b>bpm</b><p>
			beats per minute.</p></li>
		<li><b>volume</b></li>
		<li><b>damping</b><p>
			controls the softness of the click sound.</p></li>
	</ul>

	<a name=Dirac><h4>Dirac</h4></a>

	<p>
		This plugin produces periodic impulses of exactly one sample width 
		(as long as the 'damping' control is left at the default 0 setting).
		It's probably only useful for testing and basic impulse response
		retrieval; don't use this plugin if you don't know what you're doing,
		your amplification hardware and speakers will thank you. 
		The 'volume' control defaults to silent output to spare you nasty
		surprises.
	</p>
	<p>
		<em>All sample rates.</em>
	</p>
	<ul>
		<li><b>ppm</b><p>
			pulses per minute.</p></li>
		<li><b>volume</b></li>
		<li><b>damping</b></li>
	</ul>

	<a name=HRTF><h4>HRTF</h4></a>

	<p>
		Applying the head-related transfer function to a signal makes it appear
		to come from a specific direction in space. This plugin applies the
		HRTF with custom-shaped IIR filters. 
		Tell me how it works for you (you should
		have pretty good headphones to get the full effect). 
	</p>
	<p>
		The HRTF impulse response data has been collected and prepared 
		by MIT's Media Lab.
	</p>
	<p>
		This unit only utilizes the 0-elevation set (sound source is level
		with the listener).
	</p>
	<p>
		<em>44.1 kHz.</em>
	</p>
	<ul>
		<li><b>pan</b><p>
			The position, in integer steps. Some noteworthy settings:
			<ul>
				<li>
					0 = in front</li>
				<li>+18 = left,</li>
				<li>-18 = right, and</li>
				<li>-36 = +36 = behind the listener.</li>
			</ul>
		</li>
	</ul>

	&nbsp;<br>

	<a name=Appendix><h3>Appendix</h3></a>

	<a name=DataSheet><h4>Plugin Data Sheets</h4></a>

	<p>
		The CAPS data sheets collect the following information from
		the plugins:
	</p>
	<ul type=circle>
		<li>the plugin ID</li>
		<li>normalized sample output from the plugin 
			with default parameter settings 
			(in the filter case, this is an impulse response)</li>
		<li>a frequency magnitude plot for the sample output</li>
		<li>estimated CPU usage on my box (usually wildly inaccurate)</li>
		<li>latency information if applicable</li>
		<li>audio routing information</li>
		<li>the control inputs on the plugin</li>
	</ul>
	<p>
		You can fetch the data sheet compilation
		<a href=caps-0.4.5.pdf>here, it is caps-0.4.5.pdf (287 kB)</a>.
	</p>
	
	<a name=Changelog><h4>Changelog</h4></a>

	<pre>
0.4.5
  * Narrower plugin added
  * fixed 'configure.py' to work with python3
  * fixed Sin, Roessler and Lorenz gain smoothing on activation

0.4.4
  
0.4.3
  * basics.h cleanup / comments
  * minor Makefile cleanup
  * comment cosmetics
  * Eq and Eq2x2 per-band Q changed to 1.414 (= 1 octave)
  * Eq lowest band default value fixed to read 0
  * Niclas' fix for the bessel function implemented
  * uninitialised plugin states eliminated thanks to Damon
  * linker options for OSX added to the Makefile

0.4.2
  * fixed the 'model' port index for AmpVTS in the RDF generator

0.4.1
  * cleaned up Eq.h and Eq.cc (many g++ versions choke on the unused code
    there)
  * changed -O3 to -O2 in the g++ invocation

0.4.0
  * ToneStack plugins, by David Yeh
  * AmpV + Tone stack plugin, employing David Yeh's fine work
  * comment cosmetics
  * Amp* denormal protection fixed (or is it, Dave? ;)
  * minor code cleanup in Amp.cc
  * caps.rdf updated with plugin categories (thanks to Paul Winkler)
  * caps.rdf Cabinet* RDF preset labels renamed
  * AutoWah plugin
  * DSP::RMS reworked, may affect Compress plugin
  * DSP::Eq reworked for double precision and denormal protection
  * ./configure.py checks SSE availability
  * in case of SSE math denormal flush to zero activated for all plugins
  * all plugins renamed C* .. instead of CAPS: ..
  * Eq modified to play nice with ardour 
  * Eq2x2
  * introduced the Plugin base class, collecting common traits (normal etc)
  * getport() -- read access to control ports which is clamped to port bounds
    and maps inf and nan to 0 as well
  * all LADSPA_HINT_SAMPLE_RATE ports changed to *_LOGARITHMIC because
    of broken implementations (no surprise given the vagueness of ladspa.h
    regarding this matter) -- this means changed default parameters of the 
    affected ports, too
  * VCO* "latency" output ports removed
  * actual activate() call is deferred to first run() after activate() 
    in order to prevent inadvertent parameter smoothing sweeps during the first 
    block  of audio after activation, this should fix all problems with ardour
    (except those caused by denormals or invalid audio input)
  * caps.rdf installed by 'make install'
  * fixed a bug in tools/make-ps.py that caused the spectrum plots to 
    be inaccurate for multi-channel plugins

0.3.0
  * TwelveAX7_3 changed to clip slightly early in the upper lobe
  * Scape plugin added
  * plugin names rewritten, prefixed with "CAPS:"
  * new ChorusII, StereoChorusII plugins
  * Chorus, StereoChorus relabeled, appended 'I' suffix
  * new PhaserII plugin (great stuff if I may say so)
  * Phaser relabeled, appended 'I' suffix
  * new AmpV plugin, based on AmpIII, emulates compression and distortion
    modulation through power supply shortcomings, plus lots of fine-tuning
    and an additional biquad. We're getting there!
  * all Preamp and Amp models fitted with a new 12AX7 model, linear
    interpolation of a sample table obtained from spice simulation

0.2.4
  * feedback default reverted to 0 for the Chorus units
  * fixed Cabinet to switch to correct gain at 'model' control change
  * fixed 'model' control in Cabinet to work with a broader range of hosts
  * Cabinet name changed to CabinetI
  * CabinetII plugin: Cabinet with 32nd order IIR filters, more fidelity
    to the original frequency responses, supplied coefficients for 4 of the
    most used sample rates
  * applied the gcc-4 enabling patch
  * SweepVF renamed to SweepVFI
  * new SweepVFII plugin, variant of SweepVFI with Q modulated by a 
    second Lorenz fractal
  * dsp/exp2 dumped in favour of libm's exp2(3)

0.2.3
  * StereoChorus denormal protection made functional 
    (Thanks again to S. Savolainen)
  * Phaser denormal protected
  
0.2.2
  * Build was _not_ fixed for g++-4.0.
  * AmpIV gain control restored to operate as expected
  * Chorus/StereoChorus denormal protection (thanks to S. Savolainen)
  * a few cosmetic changes elsewhere
  
0.2.1
  * Build fixed for g++-4.0, PPC and AMD64 
    (Thanks to Niklas Werner, Andreas Jochens and Mario Lang)
  * Reverb.* cosmetics
  * AmpIV tone controls moved to after initial tube transfer

0.2.0
  * denormal protection for Preamp*, Amp*
  * Capitalized plugin Names
  * PDF now lists audio in- and outputs as well as control inputs, only
    gives average CPU rating
  * AmpIV: PreampIV + power amp stage
  * Plate2x2: Plate with 2-in, 2-out audio routing
  * Plate damping and bandwidth controls changed to map to filter fc, fixes
    behaviour in hosts that handle the log hint incorrectly

0.1.13
  * AmpIII activate() resets the boost filter

0.1.12
  * PreampIV band controls fixed to operate as expected

0.1.11
  * amps changed back to old tube model :) but new temp & gain behaviour stays
  * SweepVF, AmpIII default value adjustments

0.1.10
  * HRTF recursion runs in doubles
  * Cabinet recursion runs in doubles for much clearer sound
  * all amps fitted with a common tube voltage mapping, dsp/TwelveAX7.h
  * all amps: temperature and gain controls changed slightly
  * all amps declared in one common Amp.h
  * Pan echo fixed to be filtered independent of sample rate
  * Cabinet cosmetics and activate() from port values fix
  * SweepVF fixed to activate() from the current control settings
  * rid all *amp* plugins of the initial hi-pass, not needed anymore
  * PreampIII and AmpIII more authentic with an rbj lo-shelve, +6 dB > 1.2 kHz
    as hinted by circuit analysis
  * something_random() removed, stdlib for random generation

0.1.9
  * Pan plugin
  * 'make depend' instead of 'make dep', uses $(CC) -MM instead of 'makedepend'
  * *Chorus, AmpIII, Plate defaults changed
  * *Chorus optimizations, reintroduces funny zipper noise when 'feedback' is
    non-zero and 't' is changed
  * experimental HRTF plugin
  * Plate 'blend' goes all the way to wet output only
  * dsp/White offers a get_31() method for reduced number of bitshifts needed
  * *Chorus delay line tapping changed to employ cubic interpolation, sounds
    better
  * SweepVF modulation mix algorithm changed to clamp if over-fed, makes
    for wider sweeps
  
0.1.8
  * all oversampling plugins use Kaiser windows instead of Blackman-Harris,
    for much better performance
  * SweepVF modulation range slightly increased
  * Cabinet filter loop cosmetics (slight speedup)
  * new AmpIII Plugin: Preamp plus power amp emulation
  * lowered NOISE_FLOOR (equals 'renormal' number)
  
0.1.7
  * connect ports to lower bound on instantiate()
  * Plate delay line lengths raised, sound changed
  * Eq activate() fixed to initialize from the current settings
  * Preamp* cutoff reverted to 0.1.3 setting, thanks to Ben Saylor for
    testing
  * old IIR-based Preamp cleaned from the sources
  * zipper-noise in *Chorus units for t changes with feedback > 0 eliminated
  * all plugin constructor code moved to init() calls

0.1.6
  * SweepVF modulation mix algorithm changed to maintain proportion, not
    absolute value if x + y + z > 1, for better control
  * create $(DEST) directory on make install, pointed out by Daniel James

0.1.5
  * fixed delay line length miscalculation in ModLattice

0.1.4
  * SweepVF modulation source can be mixed now
  * latency port for VCO*
  * Lorenz and Roessler get x, y, z mixing knobs
  * PreampIV eq bands slightly tuned and coefficients moved into common struct
  * Preamp*, VCO* downsampler filter cutoff lowered
  * Clip downsampler filter cutoff lowered 
  * nonsensical audio output bounds removed
  * simplified VCO* implementation
  * JVRev rewritten for code clarity (funny enough, it also got quicker)
  * fixed JVRev to reset its history on activate()
  * added purpose, copyright and licensing information to all (i think) files.
  * HACKING file
  * CHANGES file
  
0.1.3
  * fixed all compilation problems with gcc 3.3, with the patient help
    of the lad mailing list community
  * dsp/Eq.h SSE assembler code had to go (gcc > 3 doesn't like multi-line 
    asm, and efficiency and even reliability go down if we allow gcc to 
    intersperse its 'optimization' code with our asm)
  
0.1.2
  * fixed more compilation problems with gcc >= 3.0
  
0.1.1
  * tried to (but didn't really) fix compilation problem with ladspa.h
  
0.1.0
  * initial release
	</pre>

	<p id=foot>
		<a name=dat97-1 href=#dat97-1-1>[1]</a>
			J. Dattorro, "Effect Design Part 1: Reverberator and Other Filters", 
			<i>J. Audio Eng. Society</i>, vol. 45, No. 9 (1997 September).<br>
		<a name=yeh06 href=#yeh06-1>[2]</a>D.T. Yeh, and J.O. Smith,
			" Discretization of the '59 Fender Bassman Tone Stack",
			<i>Proc. of the Int. Conf. on Digital Audio Effects (DAFx-06)</i>, 
				Montreal, Quebec, Canada, Sept. 18&ndash;20, 2006, pp. 1-6.<br>
	</p>

		</div>
			&nbsp;<br>

			<div class=foot>
				tim@<a href=http://quitte.de/>quitte.de</a>, March 26 2011.
			</div>		</center>
	</body>
</html>
